1. Field of the Invention
The present invention generally relates to image generation hardware, particularly including printers and most particularly including non-impact printers. The present invention is concerned with the use of a particular new form of encoded information--transition-encoded font image information--in the generation of a font image. The manner by which this new information is generated will be explained somewhat simplistically in the present specification. A more sophisticated teaching of the preferred manner of the generation of this transition-encoded font image information is particularly taught in the aforementioned companion patent application Ser. No. 07/096,961. However, for purposes of understanding the present invention it is only necessary to simplistically understand the nature of transition-encoded information in order that it may be further understood how such information is used in the generation of images.
2. Description of the Prior Art
An image generator is a device which receives information, nominally in ASCII form, from a computer, a computer terminal, or other such device. The image generator interprets such information in order to effect a pixel by pixel monochrome or color control of a marking device. For example, an image generator may be within a printer. For example, the pixel by pixel monochrome control may be effected by an on/off control of a raster-scanned marking device such as a laser light beam.
During the course of image generation, the image generator, nominally a printer, needs to, and will, transform, or "decompress", certain high-level encoding, such as the ASCII encoding, representing the characters and the character fonts to be imaged (printed), into the more detailed notational encodings which represent the actual font images of each character to be printed. The actual font image information may be represented by bit map (raster scan) data, run length encoded raster scan data, or by outline format (similar to pen plotter format) data. These detailed encodings are the information which is actually used, in real time, to control the marking device of the image generator. For example, a certain single ASCII encoding always represents an "a". The image generator will transform this ASCII "a" into an image represented in a certain font; for example, a block "a" or an italic "a" or an inverse color "a" or literally thousands of particular ways of generating the font image of an "a" (all of which font images are recognizable to the human brain as an "a"). Each of these different images, although all are "a", has an associated detail encoding, unique from all other detail encodings.
A commonly used prior art form of such detailed encodings is bit-map encoding. A grid matrix of the image area is created. Within this grid area the presence, or absence, of a marking at each intersection of the grid in a formation of an image of a particular character of a particular font is represented by the presence, or absence, of a binary bit within a data store, or map, for that particular character and font.
The transformation, or decompression, of information encodings involved in bit-mapped image generation normally transpires as follows. When the device controlling an image generation inputs a character, for example, the ASCII encoded letter "a", then the image generator determines from internally stored information what some particular certain image of an "a" looks like in some particular font. Usually there is a pixel map stored in the image generator memory which "maps out" those pixels for which the marking device will be caused to be "on" and those for which it will be caused to be "off" during the generation of a particular font image for a particular character, thereby generating the desired white and black image of the character. The user normally additionally specifies a font type, font size, and various other information in order to select amongst many alternative ways of representing the same character, for example the small letter "a" as printed in many fonts (Roman, Italic, etc.) at many sizes, slants, boldness levels, etc.
Depending on the resolution, a substantial amount of memory space can be tied up in the bit mapped specification of each font. For example, if the resolution is 300.times.300 dots (or pixels) per inch (dpi), then a 12 point character (1/6" high) requires 1500 bits (30.times.50) of information. If the resolution is 1200.times.1200 dpi, then 24K bits of information are required. For one complete font alphabet of 128 characters, over 3 Megabits of information are required for the bit-mapped image representations of these 128 characters. Typically it is desired to have many fonts available simultaneously. The present industry trend is towards higher resolution and more fonts. This often results in memory requirements which are difficult, if not totally impractical. Some prior art image generation systems use hard discs for bit-mapped font image information storage. However, these systems run slower than certain prior art systems which store bit-mapped font image information in semiconductor random access memory (RAM) because of the longer access time of disk memory as compared to semiconductor RAM.
It is also known in the prior art to store font image information either in Programmable Read Only Memory (PROM), or on a disk, in a compressed mode. However, this compressed font image information is always fully "blown up" into full bit-mapped data in RAM. This bit-mapped information means that one bit of storage is required for each pixel of information on the page. In some image generators, the page to be printed is assembled on a pixel by pixel basis before it is printed. This is referred to as a "full bit map" system. It is quite flexible, but the cost is high.
A second problem with bit-mapped image generation systems occurs because of the trend towards higher densities and more fonts. It is currently desired to place characters at any position within an image area (on the page)--including in overlapped positions--without regard to where any other character might be placed. One way of doing this is to have a very fast and very capable microprocessor system place the information for each character in a large RAM. However, this adversely takes a lot of processing time while the printer engine sits idle and while the programmer sits impatiently as this information is being assembled.
The present invention is particularly concerned with the use of a new form of "transition-encoded" information in image generation. The related patent application Ser. No. 07/096,961 shows that the new form "transition-encoded" information is derived by transforming, in and by a new process called "decompression", certain conventional run-length-encoded font image information. Both the run-length-encoded information which is "decompressed", and the "transition-encoded" information into which it is "decompressed", represent the images of characters and of character fonts which are generatable by an image generator. The reason that the transformation, or "decompression", which is the subject of the related invention is performed is because run-length-encoded information is not directly usable to control the marker of an image generator, whereas this new form transition-encoded font information into which the run-length-encoded information is efficiently transformed will be shown by this disclosure to be highly effective for controlling a marker, in real time, to actually generate the image of a particularly chosen character at a particularly chosen font.